建立一个swap文件增加虚拟内存

        从装系统时就接触过这个swap了,它类似与windows的虚拟内存,分区的时候一般大小为内存的2倍,如果内存超过8G,那么你分16G似乎是没有必要了。分16G足够日常交换了。然而,还会有虚拟内存不够用的情况发生。如果真遇到了,莫非还要重新给磁盘分区?当然不能,那我们就增加一个虚拟的磁盘出来。基本的思路就是:建立swapfile -> 格式化为swap格式 -> 启用该虚拟磁盘。

1
2
3
4
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=4k count=102400
记录了102400+0 的读入
记录了102400+0 的写出
419430400字节(419 MB)已复制,2.59193 秒,162 MB/秒

        “dd” 这个命令会经常用到,所以要掌握它的使用方法,其实也不难,用 “if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件,它可以提供源源不断的 “0”, 关于它的其他信息请你在网上查一下资料。 “of” 指定目标文件, “bs” 定义块的大小, “count” 定义块的数量,这两个参数的多少决定了目标文件的大小,目标文件大小 = bs x count. 用dd建了一个大小为400M的文件,然后格式化成swap格式:

1
2
3
[root@localhost ~]# mkswap -f /tmp/newdisk
Setting up swapspace version 1, size = 409596 KiB
no label, UUID=29832cab-04b9-4083-a667-9a5795a5d490

        格式化完后,就可以挂载上使用了:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 318 314 4 0 5 278
-/+ buffers/cache: 30 288
Swap: 2047 0 2047
[root@localhost ~]# swapon /tmp/newdisk
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 318 314 4 0 5 278
-/+ buffers/cache: 31 287
Swap: 2447 0 2447

        前后对比swap分区多了400M空间。其中 “free” 这个命令用来查看内存使用情况, “-m” 表示以M为单位显示